#ifndef TESTNEWARBOL_H_
#define TESTNEWARBOL_H_

#include "Test.h"
#include "includes.h"
#include "TipoClaveInt.h"

class Elemento;

class TestNewArbol: public Test 
{
private:
    Elemento* elements[23];
    Key* clavesOrdenadas[100];
    TipoClaveInt extractor;

public:
    TestNewArbol();
    virtual ~TestNewArbol();
    void run();

    /*test de claves*/
       void claveOK();
       void claveInexistente();
       void claveDuplicada();

    /*tests de insertar*/
    void Vaciar();
    void Inicio();
    void ExplotaRaiz();
    void AgregoAIntRaiz();
    void BalanceoHojaIzq();
    void NoBalanceoHojaIzq();
    void BalanceoIntRaiz();
    void InsertoInternoNORaiz();
    void InsertoInternoNORaizNuevo();
    void insertarOrdenado();

    /*tests de underflow de nodo hoja */
    void cincoNiveles();
    void borrarBasico();
    void borrarBasico2();
    void borrarClaveEstaEnPadreQueEsRaiz();
    void 	borroTodo();
    void	underBalanceo();
    void	mergeDerechoHoja();
    void	mergeDerechoIzqHoja();
    void	mergeDerDerHoja();
    void	dosNoMergean();
    void	IntUnderMergeIzq();
    void	IntUnderMergeDer();

    /*se insertan y remueven claves*/
    void borrarTerminos();



};

#endif /*TESTNEWARBOL_H_*/
